1. Field of the Invention
The present invention relates to an apparatus and method for forwarding packets, more particularly, which can forward the packets based on an internet protocol version 6 (IPv6) by hardware implementation in place of conventional software implementation in a packet switch system.
This work was supported by the IT R&D program of MIC/IITA [2005-S-101-02, Multimedia QOS Routing Technology Development]
2. Description of the Related Art
With an explosive increase in data traffic and IP nodes resulting from popularized internet, 32-bit Internet Protocol Version 4 (IPv4) addresses have been depleted. To overcome this, in the early 1960s, the Internet Engineering Task Force (IETF) sought for a protocol to replace an IPv4 protocol and developed an IPv6. The IPv6 protocol was designed by adding new features to the IPv4 protocol based on experiences accumulated from design of the IPv4.
However, the IPv6 protocol is mostly implemented in software. In other words, in conventional software implementation of the IPv6 protocol, a packet received from a lower layer is copied and stored in a memory and then processed. Here, data is transmitted between layers by memory buffer chaining using a pointer. Therefore, the conventional software implementation of the IPv6 protocol may degrade performance of a system and pose a difficulty in maintaining a wire speed.
FIG. 1 illustrates a structure of a conventional internet protocol version 6 (IPv6) input module.
In a conventional IPv6 processor device, the input module includes a media access controller (MAC) 20 for controlling interface with a data link layer, a processor 11 for processing input data, a pointer 12 having a stored memory address and a memory 13 for storing the input data.
In the IPv6 input module structured as described above, when the MAC 20, which processes the data link layer and a physical layer, collects data corresponding to one frame, the MAC 20 uses a CRC checksum to determine whether the frame is defective. If the frame is not defective, the MAC 20 transmits a packet via a dedicated interrupt terminal to a machine 10. The processor 11 in the machine 20 receives data from the memory 13 using the pointer 13, processes the received data, and overwrites a location in the memory 13 with the processed data. In this fashion, packet processing in each layer is achieved through memory overwrites.
FIG. 2 illustrates a format of a conventional IPv6 basic header. The IPv6 header includes a version field for a 4-bit, a 8-bit traffic class field, a 20-bit flow label field related to QoS (quality of service), a 16-bit unsigned integer payload length field for indicating the length of contents, an 8-bit next header (NH) field for indicating what type of extension header follows, an 8-bit unsigned integer hop limit field decremented by one by each node that forwards the packet, a source address field containing the 128 bit address of the sender of the packet, and a destination address field containing the 128 bit address of the receiver of the packet.
However, this software implementation of IPv6 indispensably requires a memory for storing the packet. This accordingly lengthens latency resulting from a large number of memory accesses, thereby generating a considerable overhead in a TCP/IP-ported machine.
As a conventional technology to overcome this problem, Korean Laid-open Patent Application No. 10-2004-0065000, entitled “IPv6 header receiving apparatus and IPv6 header processing method” discloses processing of header information by hard implementation. However, this technology still requires software implementation of look-up and processing for packet forwarding.
Also, in another conventional technique, a forwarding control apparatus based on an IP look-up device has been developed. Implementation of this apparatus mainly involves a controlling method such as generation, addition and deletion of the look-up device. In a case where there are simultaneous requests for forwarding IP packets through actual data path and updating a lookup table trough the CPU path, the forwarded IP packets suffer loss. Moreover, this apparatus appears to be a hardware forwarding apparatus due to use of external memories. But except for the external memories, the apparatus is implemented and controlled by software.
Further another conventional technology concerns an apparatus for forwarding packets in an Ethernet-based router. Here, a forwarding control device is implemented using a dual port memory such that the packet is forwarded by hardware implementation without memory copying to maintain a wire speed. However, a pointer arbitrator is a simple dual port memory device which controls writing and reading of the input packet and does not allow update of a look-up table when the input packet is forwarded. That is, when a network configuration is changed or the look-up table needs updating while the packet is forwarded, the packet should be stopped from being forwarded or otherwise suffers loss.
Therefore, the conventional IPv6 packet forwarding apparatus achieves the IPv6 packet forwarding by software or implements only a processing method of an IPv6 header by hardware. This renders it hard to maintain a wire speed in the actual IPv6 packet forwarding, thereby degrading performance of a system. Moreover, the system should perform with higher capability these days due to an incessantly faster wire speed, predominance of a giga-bit switch and emergence of a switch supported by 10-giga bit port as an up link.